<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>High-Level Shader Language</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/High-Level_Shader_Language"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-High-Level_Shader_Language rootpage-High-Level_Shader_Language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">High-Level Shader Language</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<p>The <b>High-Level Shader Language</b><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> or <b>High-Level Shading Language</b><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> (<b>HLSL</b>) is a proprietary <a href="Shading_language" title="Shading language">shading language</a> developed by <a href="Microsoft" title="Microsoft">Microsoft</a> for the <a href="Direct3D" title="Direct3D">Direct3D</a> 9 <a href="API" title="API">API</a> to augment the <a href="Shading_language#DirectX_Shader_Assembly_Language" title="Shading language">shader assembly</a> language, and went on to become the required shading language for the unified shader model of Direct3D 10 and higher.
</p><p>HLSL is analogous to the <a href="GLSL" class="mw-redirect" title="GLSL">GLSL</a> shading language used with the <a href="OpenGL" title="OpenGL">OpenGL</a> standard. It is very similar to the <a href="Nvidia_Cg" class="mw-redirect" title="Nvidia Cg">Nvidia Cg</a> shading language, as it was developed alongside it. Early versions of the two languages were considered identical, only marketed differently.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> HLSL shaders can enable profound speed and detail increases as well as many <a href="Special_effects" class="mw-redirect" title="Special effects">special effects</a> in both 2D and 3D <a href="Computer_graphics" title="Computer graphics">computer graphics</a>.
</p><p>HLSL programs come in six forms: <a href="Pixel_shader" class="mw-redirect" title="Pixel shader">pixel shaders</a> (fragment in GLSL), <a href="Vertex_shader" class="mw-redirect" title="Vertex shader">vertex shaders</a>, <a href="Geometry_shader" class="mw-redirect" title="Geometry shader">geometry shaders</a>, <a href="Compute_shader" class="mw-redirect" title="Compute shader">compute shaders</a>, <a href="Tessellation_shader" class="mw-redirect" title="Tessellation shader">tessellation shaders</a> (Hull and Domain shaders), and <a href="Ray_tracing_shader" class="mw-redirect" title="Ray tracing shader">ray tracing shaders</a> (Ray Generation Shaders, Intersection Shaders, Any Hit/Closest Hit/Miss Shaders). A vertex shader is executed for each vertex that is submitted by the application, and is primarily responsible for transforming the vertex from object space to view space, generating texture coordinates, and calculating lighting coefficients such as the vertex's normal, tangent, and bitangent vectors. When a group of vertices (normally 3, to form a triangle) come through the vertex shader, their output position is interpolated to form pixels within its area; this process is known as <a href="Rasterization" class="mw-redirect" title="Rasterization">rasterization</a>.
</p><p>Optionally, an application using a Direct3D 10/11/12 interface and Direct3D 10/11/12 hardware may also specify a geometry shader. This shader takes as its input some vertices of a primitive (triangle/line/point) and uses this data to generate/degenerate (or <a href="Tessellation_(computer_graphics)" title="Tessellation (computer graphics)">tessellate</a>) additional primitives or to change the type of primitives, which are each then sent to the rasterizer.
</p><p>D3D11.3 and D3D12 introduced Shader Model 5.1<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> and later 6.0.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Shader_model_comparison">Shader model comparison</h2></div>
<p>GPUs listed are the hardware that first supported the given specifications. Manufacturers generally support all lower shader models through drivers. Note that games may claim to require a certain DirectX version, but don't necessarily require a GPU conforming to the full specification of that version, as developers can use a higher DirectX API version to target lower-Direct3D-spec hardware; for instance DirectX 9 exposes features of DirectX7-level hardware that DirectX7 did not, targeting their fixed-function T&L pipeline.
</p>
<div class="mw-heading mw-heading3"><h3 id="Pixel_shader_comparison">Pixel shader comparison</h3></div>
<table class="wikitable">
<tbody><tr>
<th>Pixel shader version
</th>
<th>1.0
</th>
<th>1.1
</th>
<th>1.2
<p>1.3<sup id="cite_ref-PS1-3_6-0" class="reference"><a href="#cite_note-PS1-3-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
</th>
<th>1.4<sup id="cite_ref-PS1-3_6-1" class="reference"><a href="#cite_note-PS1-3-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></th>
<th>2.0<sup id="cite_ref-PS1-3_6-2" class="reference"><a href="#cite_note-PS1-3-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-SM2_7-0" class="reference"><a href="#cite_note-SM2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></th>
<th>2.0a<sup id="cite_ref-PS1-3_6-3" class="reference"><a href="#cite_note-PS1-3-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-SM2_7-1" class="reference"><a href="#cite_note-SM2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-VS2.0a_8-0" class="reference"><a href="#cite_note-VS2.0a-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></th>
<th>2.0b<sup id="cite_ref-PS1-3_6-4" class="reference"><a href="#cite_note-PS1-3-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-SM2_7-2" class="reference"><a href="#cite_note-SM2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-PS2.0b_9-0" class="reference"><a href="#cite_note-PS2.0b-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></th>
<th>3.0<sup id="cite_ref-PS1-3_6-5" class="reference"><a href="#cite_note-PS1-3-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-SM3_10-0" class="reference"><a href="#cite_note-SM3-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></th>
<th>4.0<sup id="cite_ref-D3D10_11-0" class="reference"><a href="#cite_note-D3D10-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> 4.1<sup id="cite_ref-SM4.1_12-0" class="reference"><a href="#cite_note-SM4.1-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
<p>5.0<sup id="cite_ref-SM5_13-0" class="reference"><a href="#cite_note-SM5-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p>
</th></tr>
<tr>
<th>Dependent texture limit
</th>
<td>4
</td>
<td>4
</td>
<td>4</td>
<td>6</td>
<td>8</td>
<td>Unlimited</td>
<td>8</td>
<td>Unlimited</td>
<td>Unlimited
</td></tr>
<tr>
<th>Texture instruction limit
</th>
<td>4
</td>
<td>4
</td>
<td>4</td>
<td>6 * 2</td>
<td>32</td>
<td>Unlimited</td>
<td>Unlimited</td>
<td>Unlimited</td>
<td>Unlimited
</td></tr>
<tr>
<th>Arithmetic instruction limit
</th>
<td>8
</td>
<td>8
</td>
<td>8
</td>
<td>8 * 2
</td>
<td>64
</td>
<td>Unlimited
</td>
<td>Unlimited
</td>
<td>Unlimited
</td>
<td>Unlimited
</td></tr>
<tr>
<th>Position register
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Instruction slots
</th>
<td>8
</td>
<td>8 + 4
</td>
<td>8 + 4</td>
<td>(8 + 6) * 2</td>
<td>64 + 32</td>
<td>512</td>
<td>512</td>
<td>≥ 512</td>
<td>≥ 65536
</td></tr>
<tr>
<th>Executed instructions
</th>
<td>8
</td>
<td>8 + 4
</td>
<td>8 + 4</td>
<td>(8 + 6) * 2</td>
<td>64 + 32</td>
<td>512</td>
<td>512</td>
<td>65536</td>
<td>Unlimited
</td></tr>
<tr>
<th>Texture indirections
</th>
<td>4
</td>
<td>4
</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>Unlimited</td>
<td>4</td>
<td>Unlimited</td>
<td>Unlimited
</td></tr>
<tr>
<th>Interpolated registers
</th>
<td>2 + 4
</td>
<td>2 + 4
</td>
<td>2 + 4</td>
<td>2 + 6</td>
<td>2 + 8</td>
<td>2 + 8</td>
<td>2 + 8</td>
<td>10</td>
<td>32
</td></tr>
<tr>
<th>Instruction predication
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td></tr>
<tr>
<th>Index input registers
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Temp registers
</th>
<td>2
</td>
<td>2 + 4
</td>
<td>3 + 4</td>
<td>6</td>
<td>12 to 32</td>
<td>22</td>
<td>32</td>
<td>32</td>
<td>4096
</td></tr>
<tr>
<th>Constant registers
</th>
<td>8
</td>
<td>8
</td>
<td>8</td>
<td>8</td>
<td>32</td>
<td>32</td>
<td>32</td>
<td>224</td>
<td>16×4096
</td></tr>
<tr>
<th>Arbitrary <a href="Swizzling_(computer_graphics)" title="Swizzling (computer graphics)">swizzling</a>
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Gradient instructions
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Loop count register
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Face register (2-sided lighting)
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Dynamic flow control
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes (24)</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes (64)
</td></tr>
<tr>
<th>Bitwise Operators
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Native Integers
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr></tbody></table>
<ul><li><b>PS 1.0</b> — Unreleased <a href="3dfx" title="3dfx">3dfx</a> Rampage, DirectX 8</li>
<li><b>PS 1.1</b> — <a href="GeForce_3" class="mw-redirect" title="GeForce 3">GeForce 3</a>, DirectX 8</li>
<li><b>PS 1.2</b> — <a href="3Dlabs" title="3Dlabs">3Dlabs</a> Wildcat VP, DirectX 8.1</li>
<li><b>PS 1.3</b> — <a href="GeForce_4_Ti" class="mw-redirect" title="GeForce 4 Ti">GeForce 4 Ti</a>, DirectX 8.1</li>
<li><b>PS 1.4</b> — <a href="ATI_Radeon_R200_series" class="mw-redirect" title="ATI Radeon R200 series">Radeon 8500–9250</a>, <a href="Matrox_Parhelia" title="Matrox Parhelia">Matrox Parhelia</a>, DirectX 8.1</li>
<li><b>Shader Model 2.0</b> — <a href="ATi_Radeon_R300_Series" class="mw-redirect" title="ATi Radeon R300 Series">Radeon 9500–9800/X300–X600</a>, DirectX 9</li>
<li><b>Shader Model 2.0a</b> — <a href="GeForce_FX" class="mw-redirect" title="GeForce FX">GeForce FX/PCX</a>-optimized model, DirectX 9.0a</li>
<li><b>Shader Model 2.0b</b> — <a href="Radeon_R420" class="mw-redirect" title="Radeon R420">Radeon X700–X850</a> shader model, DirectX 9.0b</li>
<li><b>Shader Model 3.0</b> — <a href="Radeon_X1000" class="mw-redirect" title="Radeon X1000">Radeon X1000</a> and <a href="GeForce_6" class="mw-redirect" title="GeForce 6">GeForce 6</a>, DirectX 9.0c</li>
<li><b>Shader Model 4.0</b> — <a href="Radeon_HD_2000" class="mw-redirect" title="Radeon HD 2000">Radeon HD 2000</a> and <a href="GeForce_8" class="mw-redirect" title="GeForce 8">GeForce 8</a>, DirectX 10</li>
<li><b>Shader Model 4.1</b> — <a href="Radeon_HD_3000" class="mw-redirect" title="Radeon HD 3000">Radeon HD 3000</a> and <a href="GeForce_200" class="mw-redirect" title="GeForce 200">GeForce 200</a>, DirectX 10.1</li>
<li><b>Shader Model 5.0</b> — <a href="Radeon_HD_5000_series" title="Radeon HD 5000 series">Radeon HD 5000</a> and <a href="GeForce_400" class="mw-redirect" title="GeForce 400">GeForce 400</a>, DirectX 11</li>
<li><b>Shader Model 5.1</b> — <a href="Graphics_Core_Next#first" title="Graphics Core Next">GCN 1+</a>, Fermi+, DirectX 12 (11_0+) with WDDM 2.0</li>
<li><b>Shader Model 6.0</b> — GCN 1+, Kepler+, DirectX 12 (11_0+) with WDDM 2.1</li>
<li><b>Shader Model 6.1</b> — GCN 1+, Kepler+, DirectX 12 (11_0+) with WDDM 2.3</li>
<li><b>Shader Model 6.2</b> — GCN 1+, Kepler+, DirectX 12 (11_0+) with WDDM 2.4</li>
<li><b>Shader Model 6.3</b> — GCN 1+, Kepler+, DirectX 12 (11_0+) with WDDM 2.5</li>
<li><b>Shader Model 6.4</b> — GCN 1+, Kepler+, Skylake+, DirectX 12 (11_0+) with WDDM 2.6</li>
<li><b>Shader Model 6.5</b> — GCN 1+, Kepler+, Skylake+, DirectX 12 (11_0+) with WDDM 2.7</li>
<li><b>Shader Model 6.6</b> — GCN 4+, Maxwell+, DirectX 12 (11_0+) with WDDM 3.0</li>
<li><b>Shader Model 6.7</b> — GCN 4+, Maxwell+, DirectX 12 (12_0+) with WDDM 3.1</li>
<li><b>Shader Model 6.8</b> — RDNA 1+, Maxwell 2+, DirectX 12 (12_0+) with WDDM 3.1 / 3.2 with Agility SDK</li></ul>
<p><br>
"32 + 64" for <i>Executed Instructions</i> means "32 texture instructions and 64 arithmetic instructions."
</p>
<div class="mw-heading mw-heading3"><h3 id="Vertex_shader_comparison">Vertex shader comparison</h3></div>
<table class="wikitable">
<tbody><tr>
<th>Vertex shader version
</th>
<th>1.0
</th>
<th>1.1<sup id="cite_ref-VS1-3_14-0" class="reference"><a href="#cite_note-VS1-3-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</th>
<th>2.0<sup id="cite_ref-SM2_7-3" class="reference"><a href="#cite_note-SM2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-VS1-3_14-1" class="reference"><a href="#cite_note-VS1-3-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-VS2.0a_8-1" class="reference"><a href="#cite_note-VS2.0a-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></th>
<th>2.0a<sup id="cite_ref-SM2_7-4" class="reference"><a href="#cite_note-SM2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-VS1-3_14-2" class="reference"><a href="#cite_note-VS1-3-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-VS2.0a_8-2" class="reference"><a href="#cite_note-VS2.0a-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></th>
<th>3.0<sup id="cite_ref-SM3_10-1" class="reference"><a href="#cite_note-SM3-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-VS1-3_14-3" class="reference"><a href="#cite_note-VS1-3-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup></th>
<th>4.0<sup id="cite_ref-D3D10_11-1" class="reference"><a href="#cite_note-D3D10-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> <br>4.1<sup id="cite_ref-SM4.1_12-1" class="reference"><a href="#cite_note-SM4.1-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> <br>5.0<sup id="cite_ref-SM5_13-1" class="reference"><a href="#cite_note-SM5-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</th></tr>
<tr>
<th># of instruction slots
</th>
<td>128
</td>
<td>128</td>
<td>256</td>
<td>256</td>
<td>≥ 512</td>
<td>≥ 65536
</td></tr>
<tr>
<th>Max # of instructions executed
</th>
<td>128
</td>
<td>128</td>
<td>1024</td>
<td>65536</td>
<td>65536</td>
<td>Unlimited
</td></tr>
<tr>
<th><a href="Branch_predication" class="mw-redirect" title="Branch predication">Instruction predication</a>
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Temp registers
</th>
<td>12
</td>
<td>12</td>
<td>12</td>
<td>16</td>
<td>32</td>
<td>4096
</td></tr>
<tr>
<th># constant registers
</th>
<td>≥ 96
</td>
<td>≥ 96</td>
<td>≥ 256</td>
<td>256</td>
<td>≥ 256</td>
<td>16×4096
</td></tr>
<tr>
<th>Address register
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No
</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Static flow control
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Dynamic flow control
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Dynamic flow control depth
</th>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td>24</td>
<td>24</td>
<td>64
</td></tr>
<tr>
<th>Vertex texture fetch
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th># of texture samplers
</th>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">—</td>
<td>4</td>
<td>128
</td></tr>
<tr>
<th><a href="Geometry_instancing" title="Geometry instancing">Geometry instancing</a> support
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Bitwise operators
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr>
<tr>
<th>Native integers
</th>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No</td>
<td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Direct3D" title="Direct3D">Direct3D</a></li>
<li><a href="DirectX" title="DirectX">DirectX</a></li>
<li><a href="DirectX_Raytracing" title="DirectX Raytracing">DirectX Raytracing</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Footnotes">Footnotes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-writing-shaders-9">"Writing HLSL Shaders in Direct3D 9"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl">"High-level shader language (HLSL)"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120824051248/http://www.fusionindustries.com/default.asp?page=cg-hlsl-faq">"Fusion Industries :: Cg and HLSL FAQ ::"</a>. August 24, 2012. Archived from <a rel="nofollow" class="external text" href="http://www.fusionindustries.com/default.asp?page=cg-hlsl-faq">the original</a> on August 24, 2012.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/shader-model-5-1-objects">"Shader Model 5.1 Objects"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/hlsl-shader-model-6-0-features-for-direct3d-12">"HLSL Shader Model 6.0"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-PS1-3-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-PS1-3_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-PS1-3_6-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-PS1-3_6-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-PS1-3_6-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-PS1-3_6-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-PS1-3_6-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx9-graphics-reference-asm-ps-differences">"Pixel Shader Differences"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i>. August 19, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-SM2-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-SM2_7-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SM2_7-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-SM2_7-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-SM2_7-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-SM2_7-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPeeperMitchell2003" class="citation web cs1">Peeper, Craig; Mitchell, Jason L. (July 2003). <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/previous-versions/ms810449(v=msdn.10)">"Introduction to the DirectX 9 High-Level Shader Language"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-VS2.0a-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-VS2.0a_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-VS2.0a_8-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-VS2.0a_8-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFShimpi" class="citation web cs1"><a href="Anand_Lal_Shimpi" title="Anand Lal Shimpi">Shimpi, Anand Lal</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130610035912/http://www.anandtech.com/show/1034/4">"NVIDIA Introduces GeForce FX (NV30)"</a>. <i><a href="AnandTech" title="AnandTech">AnandTech</a></i>. Archived from <a rel="nofollow" class="external text" href="https://www.anandtech.com/show/1034/4">the original</a> on June 10, 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-PS2.0b-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-PS2.0b_9-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFWilson" class="citation web cs1">Wilson, Derek. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120928192354/http://www.anandtech.com/show/1314/4">"ATI Radeon X800 Pro and XT Platinum Edition: R420 Arrives"</a>. <i><a href="AnandTech" title="AnandTech">AnandTech</a></i>. Archived from <a rel="nofollow" class="external text" href="https://www.anandtech.com/show/1314/4">the original</a> on September 28, 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-SM3-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-SM3_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SM3_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Shader Model 3.0, Ashu Rege, NVIDIA Developer Technology Group, 2004.</span>
</li>
<li id="cite_note-D3D10-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-D3D10_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-D3D10_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">The Direct3D 10 System, David Blythe, Microsoft Corporation, 2006.</span>
</li>
<li id="cite_note-SM4.1-12"><span class="mw-cite-backlink">^ <a href="#cite_ref-SM4.1_12-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SM4.1_12-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-sm4-registers-ps-4-1">"Registers - ps_4_1"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i>. August 23, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-SM5-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-SM5_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SM5_13-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/registers---ps-5-0">"Registers - ps_5_0"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i>. August 23, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-VS1-3-14"><span class="mw-cite-backlink">^ <a href="#cite_ref-VS1-3_14-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-VS1-3_14-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-VS1-3_14-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-VS1-3_14-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx9-graphics-reference-asm-vs-differences">"Vertex Shader Differences"</a>. <i><a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></i>. August 19, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">February 22,</span> 2021</span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-pguide">Programming guide for HLSL</a> at <a href="Microsoft_Docs" title="Microsoft Docs">Microsoft Docs</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20100215205220/http://ati.amd.com/developer/ShaderX2_IntroductionToHLSL.pdf">Introduction to the DirectX 9 High Level Shading Language</a>, (ATI) AMD developer central</li>
<li><a rel="nofollow" class="external text" href="http://www.riemers.net/Tutorials/DirectX/Csharp3/index.php">Riemer's HLSL Introduction & Tutorial (includes sample code)</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20081119034954/http://www.riemers.net/Tutorials/DirectX/Csharp3/index.php">Archived</a> November 19, 2008, at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li>
<li><a rel="nofollow" class="external text" href="http://www.neatware.com/lbstudio/web/hlsl.html">HLSL Introduction</a></li>
<li><a rel="nofollow" class="external text" href="https://github.com/microsoft/DirectXShaderCompiler/blob/master/docs/DXIL.rst">DirectX Intermediate Language</a> (DXIL) specification</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-06" href="https://en.wikipedia.org/wiki/?title=High-Level_Shader_Language&oldid=1304462243">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>